﻿using Ninject.Modules;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using QuanLyGiaoVuService.CommandServices;
using QuanLyGiaoVuService.ReportServices;
using QuanLyGiaoVuDAL.Repositories.DatabaseRepositories;
using QuanLyGiaoVuService.CommonServices;
using QuanLyGiaoVuDAL.Repositories;

namespace QuanLyGiaoVuUI.IOC
{
    public class QuanLyGiaoVuModule : NinjectModule
    {
        public override void Load()
        {
            Bind<IGiangVienCommandService>().To<GiangVienCommandService>();
            Bind<IGiangVienReportService>().To<GiangVienReportService>();
            Bind<IGiangVienRepository>().To<GiangVienRepository>();
            Bind<IMonHocCommandService>().To<MonHocCommandService>();
            Bind<IMonHocReportService>().To<MonHocReportService>();
            Bind<IMonHocRepository>().To<MonHocRepository>();
            Bind<IHocKyCommandService>().To<HocKyCommandService>();
            Bind<IHocKyReportService>().To<HocKyReportService>();
            Bind<IHocKyRepository>().To<HocKyRepository>();
            Bind<ILopMonHocCommandService>().To<LopMonHocCommandService>();
            Bind<ILopMonHocReportService>().To<LopMonHocReportService>();
            Bind<ILopMonHocRepository>().To<LopMonHocRepository>();
            Bind<IThamSoService>().To<ThamSoService>();
            Bind<IThamSoRepository>().To<ThamSoRepository>();
            Bind<IDangKyGioDayRepository>().To<DangKyGioDayRepository>();
            Bind<IDangKyGioDayCommandService>().To<DangKyGioDayCommandService>();
            Bind<IDangKyGioDayReportService>().To<DangKyGioDayReportService>();
            Bind<IXepLichService>().To<XepLichService>();
            Bind<INguoiDungRepository>().To<NguoiDungRepository>();
            Bind<INguoiDungCommandService>().To<NguoiDungCommandService>();
            Bind<INguoiDungReportService>().To<NguoiDungReportService>();
            Bind<ISinhVienRepository>().To<SinhVienRepository>();
            Bind<ISinhVienCommandService>().To<SinhVienCommandService>();
            Bind<ISinhVienReportService>().To<SinhVienReportService>();
            Bind<ITaiLieuRepository>().To<TaiLieuRepository>();
            Bind<ITaiLieuReportService>().To<TaiLieuReportService>();
            Bind<ITaiLieuCommandService>().To<TaiLieuCommandService>();
            Bind<IDeTaiRepository>().To<DeTaiRepository>();
            Bind<IDeTaiCommandService>().To<DeTaiCommandService>();
            Bind<IDeTaiReportService>().To<DeTaiReportService>();
            Bind<IFileRepository>().To<FileRepository>();
            Bind<IFileService>().To<FileService>();
            Bind<IDangKyDeTaiRepository>().To<DangKyDeTaiRepository>();
            Bind<IDangKyDeTaiCommandService>().To<DangKyDeTaiCommandService>();
            Bind<IDangKyDeTaiReportService>().To<DangKyDeTaiReportService>();
            Bind<IQuanLyQuyenTruyCapRepository>().To<QuanLyQuyenTruyCapRepository>();
            Bind<IQuanLyQuyenTruyCapService>().To<QuanLyQuyenTruyCapService>();
            Bind<IBanTinRepository>().To<BanTinRepository>();
            Bind<IBanTinCommandService>().To<BanTinCommandService>();
            Bind<IBanTinReportService>().To<BanTinReportService>();
            Bind<IThongBaoRepository>().To<ThongBaoRepository>();
            Bind<IThongBaoCommandService>().To<ThongBaoCommandService>();
            Bind<IThongBaoReportService>().To<ThongBaoReportService>();
            Bind<IChiTietThongBaoRepository>().To<ChiTietThongBaoRepository>();
            Bind<IChiTietThongBaoCommandService>().To<ChiTietThongBaoCommandService>();
            Bind<IChiTietThongBaoReportService>().To<ChiTietThongBaoReportService>();
            Bind<ITietHocRepository>().To<TietHocRepository>();
            Bind<ITietHocService>().To<TietHocService>();
            Bind<IBangDiemRepository>().To<BangDiemRepository>();
            Bind<IBangDiemCommandService>().To<BangDiemCommandService>();
            Bind<IBangDiemReportService>().To<BangDiemReportService>();
            Bind<IExcelService>().To<ExcelService>();
            Bind<IDangKyKetThucLopMonHocRepository>().To<DangKyKetThucLopMonHocRepository>();
            Bind<IDangKyKetThucLopMonHocCommandService>().To<DangKyKetThucLopMonHocCommandService>();
            Bind<IDangKyKetThucLopMonHocReportService>().To<DangKyKetThucLopMonHocReportService>();
            Bind<ITemplateService>().To<TemplateService>();
            Bind<ILichThiRepository>().To<LichThiRepository>();
            Bind<ILichThiReportService>().To<LichThiReportService>();
            Bind<ILichThiCommandService>().To<LichThiCommandService>();
            Bind<IBauChonDeTaiRepository>().To<BauChonDeTaiRepository>();
            Bind<IBauChonDeTaiCommandService>().To<BauChonDeTaiCommandService>();
            Bind<IBauChonDeTaiReportService>().To<BauChonDeTaiReportService>();
            Bind<IXepLich2Service>().To<XepLich2Service>();
            Bind<ITienDoDeTaiRepository>().To<TienDoDeTaiRepository>();
            Bind<ITienDoDeTaiCommandService>().To<TienDoDeTaiCommandService>();
            Bind<ITienDoDeTaiReportService>().To<TienDoDeTaiReportService>();
        }
    }
}